#define  _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <queue>
#include <functional>
#include "stack.h"
#include "queue.h"
//int main()
//{
//	//lw::stack<int> st;
//	//lw::stack<int, vector<int>> st;
//	lw::stack<int, list<int>> st;
//	st.push(1);
//	st.push(2);
//	st.push(3);
//	st.push(4);
//	while (st.size())
//	{
//		cout << st.top() << ' ';
//		st.pop();
//	}
//	cout << endl;
//	return 0;
//}

//int main()
//{
//	lw::queue<int> q;
//	q.push(1);
//	q.push(2);
//	q.push(3);
//	q.push(4);
//	q.push(5);
//
//	while (!q.empty())
//	{
//		cout << q.front() << ' ';
//		q.pop();
//	}
//	cout << endl;
//
//	return 0;
//}

int main()
{
	//lw::priority_queue<int> heap;
	lw::priority_queue<int, vector<int>, greater<int>> heap;
	heap.push(1);
	heap.push(2);
	heap.push(2);
	heap.push(4);
	heap.push(6);
	heap.push(8);
	while (heap.size())
	{
		cout << heap.top() << ' ';
		heap.pop();
	}
	return 0;
}